<template>
  <div>test</div>
</template>

<script>
// vue生命周期： 开始创建初始化数据、编译模板、挂载DOM、渲染一更新一渲染、卸载等一系列过程
export default {
  name: "Test",

  // 1、创建期间的生命周期函数：
  // 1、1beforeCreate：实例刚在内存中被创建出来，此时，还没有初始化好data 和 methods 属性
  beforeCreate() {},
  // 1、2created：实例已经完成了模板的编译，但是还没有挂载到页面中
  created() {},
  // 1、3beforeMount：此时已经完成了模板的翻译，但是还有完全挂载到页面中
  beforeMount() {},
  // 1、4mounted：此时，已经将编译好的模板，挂载到了页面指定的容器中显示
  //   mounted(挂载) 钩子可以用来在组件完成初始渲染并创建 DOM 节点后运行代码
  mounted() {
    console.log("注意：避免用箭头函数来定义生命周期钩子");
  },

  // 2、运行期间的生命周期函数：
  // 2、1beforeUpdate：状态更新之前执行此函数，此时 data 中的状态值是最新的，
  //   但是界面上显示的数据还是旧的，因为此时还没有开始重新渲染DOM节点
  beforeUpdate() {},
  // 2、2updated：实例更新完毕之后调用次函数，此时 data 中的状态值 和 界面上显示的数据，
  //   都已经完成了更新，界面已经被重新渲染好了
  updated() {},

  // 3、销毁期间的生命周期函数：
  // 3、1beforeDestroy：实例销毁之前调用，在这一步，实例仍然完全可用
  //    实例身上所有的 data 和所有的 methods， 以及 过滤器、指令、、 都处于可用状态，此时，还没有真正执行销毁的过程
  beforeDestroy(){},
  // 3、2destroyed：Vue 实例销毁后调用。调用后，vue 实例 指示的所有东西都会解绑，
  //    所有的事件监听器会被移除，所有的子实例也会被销毁
  destroyed(){},
};
</script>

<style>
</style>